モジュール詳細:反転橙色暗号

橙色、それは私を元気にしてくれる。

モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。

ページ1には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーに6文字の文字列、下のディスプレーには暗号化された文字列が表示される。 暗号化された単語に「J」が含まれている場合、同じ位置にある真ん中のディスプレーの文字に置き換える。3ステップ完了後、その文字を再び「J」に戻す。

ページ2には、上のディスプレーに別の暗号化された文字列、真ん中のディスプレーに単語、下のディスプレーには数字が表示される。

以下のルールに従って単語を解読する。

ステップ1:コロン暗号

まず、5×5の行列を作成する必要がある。

ページ2の真ん中のディスプレーからキーワードを取得し、Jがある場合はそれをIに変換し、重複する英字の2文字目以降を削除する。

アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最後の数字が偶数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これを行列Aと呼ぶ。

ページ1の下のディスプレーにある単語とページ2の上のディスプレーにある暗号化された文字列を連結する。

暗号化された文字列を2つずつのペアに分割し、各ペアについて以下の手順を実行する。

  • 行列Aから1番目の英字を探し、その段を取得する。
  • 行列Aから2番目の英字を探し、その列を取得する。
  • 2つの英字の交点が、復号された英字となる。

出来上がった文字が、ステップ2で使用するキーワードとなる。文字「J」が無いため、本来はJであった場所に「I」が含まれている可能性があることに注意する。

暗号化された単語:QLSEDXFYWP
配置前行列A: DISPUTEABCFGHKLMNOQRVWXYZ

DISPU
TEABC
FGHKL
MNOQR
VWXYZ

QL -> R
SE -> I
DX -> S
FY -> K
WP -> Y
復号された単語:RISKY

ステップ2:フォースクエア暗号

ステップ名の通り、4つの行列が必要となる。行列Aは、ステップ1で使用したものをここでも使う。行列Bは、既に以下の通り作成されている。

AFLQV
BGMRW
CHNSX
DIOTY
EKPUZ

三つ目の行列は行列Cと呼ばれ、ページ2の下のディスプレーにある4桁の数字を使用して作成される。

数字の各桁を単語の形式に変換する(例:2537 -> TWO FIVE THREE SEVEN)。これが行列Cで使うキーワードになる。

Jがある場合はそれをIに変換し、全ての空白と重複する英字の2文字目以降を削除する。アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの二番目の数字が奇数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これが行列Cである。

行列Dは、ステップ1で得たキーワードを使って作成する。

Jがある場合はそれをIに変換し、全ての空白と重複する英字の2文字目以降を削除する。アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最初の数字が偶数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。これが行列Dと呼ぶ。

4つの行列を取得し、以下のように2×2のグリッド上に配置する。

A | B
---
C | D

ページ1の上のディスプレーから獲得した暗号化された単語を2文字ずつのペアに分割する。各ペアに対して、以下の処理を行う。

  • 一番目の文字を行列Aから見つけ、二番目の文字を行列Dから見つける。
  • 一番目の文字がある行と二番目の文字がある列を行列Bから見つけ、一番目の復号された英字を獲得する。
  • 一番目の文字がある列と二番目の文字がある行を行列Cから見つけ、二番目の復号された英字を獲得する。

この結果は新たな暗号化された単語になる。

暗号化された単語:HINMBG
鍵A:DISPUTEABCFGHKLMNOQRVWXYZ
鍵B:AFLQVBGMRWCHNSXDIOTYEKPUZ
鍵C:TWOFIVEHRSNABCDGKLMPQUXYZ
鍵D:RISKYABCDEFGHLMNOPQTUVWXZ

DISPU|AFLQV
TEABC|BGMRW
FGHKL|CHNSX
MNOQR|DIOTY
VWXYZ|EKPUZ
-----+-----
TWOFI|RISKY
VEHRS|ABCDE
NABCD|FGHLM
GKLMP|NOPQT
QUXYZ|UVWXZ

HI -> HO
NM -> YA
BG -> GC
新たな暗号化された単語:HOYAGC

ステップ3:バズリー暗号

ここでは、行列Bと行列Cの2つの行列が必要になる。

ステップ2で獲得した暗号化された単語に対して、X文字ずつのグループに分割する。Xはページ2の下のディスプレーにある数字の各桁の合計を4で割った余りに2を加えた数である。

各グループそれぞれに対して、文字を反転させ、元の位置に戻す。

2 + 5 + 3 + 7 = 17 % 4 = 1 + 2 = 3
HOYAGC => HOY AGC => YOH CGA => YOHCGA

各英字を行列Bの中から探し、それと同じ段/列を行列Cの中から探して、新たな英字を得る。

最初Jだった文字はJに置き換えることで、解読された単語になることを忘れないようにすること。

暗号化された単語:YOHCGA
鍵B:AFLQVBGMRWCHNSXDIOTYEKPUZ
鍵C:TWOFIVEHRSNABCDGKLMPQUXYZ

AFLQV|TWOFI
BGMRW|VEHRS
CHNSX|NABCD
DIOTY|GKLMP
EKPUZ|QUXYZ

Y -> P
O -> L
H -> A
C -> N
G -> E
A -> T
復号された単語:PLANET

復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの矢印をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。